// 封装一个利用 promise 进行请求的方法
// resolve函数的作用是将Promise对象的状态从'未完成'变为'成功'(由Pending变为Resolved), 在异步操作成功时,将操作结果作为参数传递出去;
// reject函数的作用是将Promise对象的状态从'未完成'变为失败(由Pending变为Rejected),在异步操作失败时调用,并将异步操作的错误作为参数传递出去.

function getRequest(options) {
  const BASE_URL = 'http://localhost:3000' // 将基地址抽离
  // 请求前进入loading效果
  wx.showLoading({
    title: '加载中...',
    mask: true // 设置蒙层
  })
  return new Promise((resolve, reject) => { // 必须将 promise 对象返回
    wx.request({
      url: BASE_URL + options.url,
      method:options.method,
      data:options.data,
      header:options.header,
      success: (res) => {
        // ES6 的解构赋值语法
        var { status } = res.data
        if (status === 0) { // 当返回正确的数据时再执行
          // resolve：异步操作成功,将操作结果作为参数传递出去
          resolve(res.data)
        }
      },
      // complete 请求结束后就会执行，无论请求结果是success还是fail
      complete:()=>{
        // 结束loading效果
        wx.hideLoading()
      }
    })
  })
}
// 导出该方法
export default getRequest